/*
 * user管理人员 Dao层增删改查
*/
const baseDao = require('./BaseDao');

module.exports = {
    /**
     * 查询所有的数据
     * @returns            返回操作的结果
     */
    selectAllUser(){
        return baseDao.handleData('select id, username, password, register_time, last_login_time, nickname, email, phone from user', null);
    },
    /**
     * 基于一个主键id查询一条记录
     * @param id          主键id
     * @returns           返回操作的结果
     */
    selectUserById(id){
        return baseDao.handleData('select id, username, password, register_time, last_login_time, nickname, email, phone from user where id=?',
            [id]);
    },
    /**
     * 根据用户传递模糊名称进行统计个数
     * @param username          模糊名
     * @returns                  返回操作的结果
     */
    selectUserCount(username){
        return baseDao.handleData('select count(*) from user where username like ?',
            ["%" + username + "%"]);
    },
    /**
     * 根据传递的用户名和密码查询user表
     * @param username     用户名
     * @param password     密码
     * @returns            返回操作的结果
     */
    selectUserData(username, password){
        return baseDao.handleData('select id,username,last_login_time from user where username=? and password=?',
            [username, password]);
    },
    /**
     * 根据电话查询user表中一条记录
     * @param phone         电话
     * @returns             返回操作的结果
     */
    selectUserByPhone(phone){
        return baseDao.handleData('select id, username, password, register_time, last_login_time, nickname, email, phone from user where phone=?',
            [phone]);
    },
    /**
     * 新增user表
     * @param username         用户名
     * @param password         密码
     * @param nickname         姓名
     * @param phone            电话
     * @param register_time    注册时间
     * @returns                返回操作的结果
     */
    insertUserData(username, password, nickname, phone, register_time){
        return baseDao.handleData('insert into user(username,password,nickname,phone,register_time) values(?,?,?,?,?)',
            [username, password, nickname, phone, register_time]);
    },
    /**
     * 根据传递的用户id更新user表中某一个用户的最后登录时间
     * @param time            最后登录时间
     * @param id              用户主键id
     * @returns               返回操作的结果
     */
    updateUserData(time, id){
        return baseDao.handleData('update user set last_login_time=? where id=?',
            [time, id]);
    },
    /**
     * 根据传递的主键id更新表中某一条完整的记录
     * @param password          密码
     * @param nickname          姓名
     * @param phone             电环
     * @param id                用户主键id
     * @returns                 返回操作的结果
     */
    updateUserById(password, nickname, phone, id){
        return baseDao.handleData('update user set password=?, nickname=?, phone=? where id=?',
            [password, nickname, phone, id]);
    },
    /**
     * 根据传递的主键id删除表中某一条记录
     * @param id         表主键id
     * @returns          返回操作的结果
     */
    deleteUserById(id){
        return baseDao.handleData('delete from user where id=?',
            [id]);
    }
};
